-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Miri tests: use xargo to build separate libstd #63162
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
This seems fine to me, especially as it looks to be consolidating miri testing related logic which is good! I think it'd be good to get a green light from Azure as well, but once the miri update is included that should auto-test here anyway. |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Wait, why did this code now run in the It says "Building stage2 tool miri", and still seems to try to test. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good to me as well (r=me, presuming no one else needs to review this); I have not looked at miri-internal changes and such.
@bors rollup=never |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
@Mark-Simulacrum any idea why the The tools builder also fails, I am investigating that. |
That builder runs tests? |
But I thought the tools tests should only be run on the tools builder? |
I've spent a bit of time trying to investigate, and something feels off to me. This auto branch build does not build miri on the x86_64-gnu-llvm-6.0 builder. Neither does this recent PR build; the failure in this PR though clearly shows miri being built. AFAICT, this is because Miri is labeled as "default" = true, unlike all the other tools (Clippy, etc.) This usually didn't matter because we had test_miri as a condition, but since that has gone away, this PR needs to change miri to no longer be enabled by default, by removing or flipping the value of |
This comment has been minimized.
This comment has been minimized.
@Mark-Simulacrum nice catch, thanks! |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Testing only on the tools job seems to work, at least. ;) Building Miri fails because master is currently broken with Miri. |
@bors: r+ |
📌 Commit 77028562fc02b3dd2222adbaec94daa9feba1f2f has been approved by |
Or well, @bors: r- delegate+ r=me when this is ready |
@bors r=alexcrichton |
📌 Commit e6be1d7 has been approved by |
Cleanup after rustc bootstrap tests Miri with a separate libstd Should only be merged after rust-lang/rust#63162 got the green light.
⌛ Testing commit e6be1d7 with merge a430e789d93814093d5f4889a5bcdee977f9aa75... |
Miri tests: use xargo to build separate libstd This uses `cargo miri setup` to prepare the libstd that is used for testing Miri, instead of adjusting the entire bootstrap process to make sure the libstd that already gets built is fit for Miri. The issue with our current approach is that with `test-miri = true`, libstd and the test suite get built with `--cfg miri`, which e.g. means hashbrown uses no SIMD, and not all things are tested. Such global side-effects seem like footguns waiting to go off. On the other hand, the new approach means we install xargo as a side-effect of doing `./x.py test src/tools/miri`, which might be surprising, and we also both have to build xargo and another libstd which costs some extra time. Not sure if the tools builders have enough time budget for that. Maybe there is a way to cache xargo? We have to first first land rust-lang/miri#870 in Miri and then update this PR to include that change (also to get CI to test Miri before bors), but I wanted to get the review started here. Cc @oli-obk (for Miri) @alexcrichton (for CI) @Mark-Simulacrum (for bootstrap) Fixes rust-lang#61833, fixes rust-lang#63219
@bors retry rolled up. |
⌛ Testing commit e6be1d7 with merge d58ca014d15e3523965f8a7a46f94d1a4ceb5166... |
Miri tests: use xargo to build separate libstd This uses `cargo miri setup` to prepare the libstd that is used for testing Miri, instead of adjusting the entire bootstrap process to make sure the libstd that already gets built is fit for Miri. The issue with our current approach is that with `test-miri = true`, libstd and the test suite get built with `--cfg miri`, which e.g. means hashbrown uses no SIMD, and not all things are tested. Such global side-effects seem like footguns waiting to go off. On the other hand, the new approach means we install xargo as a side-effect of doing `./x.py test src/tools/miri`, which might be surprising, and we also both have to build xargo and another libstd which costs some extra time. Not sure if the tools builders have enough time budget for that. Maybe there is a way to cache xargo? We have to first first land rust-lang/miri#870 in Miri and then update this PR to include that change (also to get CI to test Miri before bors), but I wanted to get the review started here. Cc @oli-obk (for Miri) @alexcrichton (for CI) @Mark-Simulacrum (for bootstrap) Fixes rust-lang#61833, fixes rust-lang#63219
@bors retry rolled up. |
Rollup of 6 pull requests Successful merges: - #63162 (Miri tests: use xargo to build separate libstd) - #63289 (Don't recommend `extern crate` syntax) - #63373 (gitignore: add comment explaining policy) - #63374 (move of packed fields might or might not occur when they actually are sufficiently aligned) - #63381 (reduce visibility) - #63387 (Test interaction between `async { ... }` and `?`, `return`, and `break`) Failed merges: r? @ghost
This uses
cargo miri setup
to prepare the libstd that is used for testing Miri, instead of adjusting the entire bootstrap process to make sure the libstd that already gets built is fit for Miri.The issue with our current approach is that with
test-miri = true
, libstd and the test suite get built with--cfg miri
, which e.g. means hashbrown uses no SIMD, and not all things are tested. Such global side-effects seem like footguns waiting to go off.On the other hand, the new approach means we install xargo as a side-effect of doing
./x.py test src/tools/miri
, which might be surprising, and we also both have to build xargo and another libstd which costs some extra time. Not sure if the tools builders have enough time budget for that. Maybe there is a way to cache xargo?We have to first first land rust-lang/miri#870 in Miri and then update this PR to include that change (also to get CI to test Miri before bors), but I wanted to get the review started here.
Cc @oli-obk (for Miri) @alexcrichton (for CI) @Mark-Simulacrum (for bootstrap)
Fixes #61833, fixes #63219